#include "udpServer.hpp"
#include "callbackFun.hpp"
#include <iostream>
#include <string>
#include <cstdio>

/*
    消息转发细节未处理：
    1.一条信息只转发
    2.显示和输入提示顺序控制（条件变量）
*/

void manual(const char *str)
{
    printf("%s port\n", str);
}

// argc记录的是argv中的char指针个数，argv是一个char 的指针数组
// argv里面存的是什么呢？
// 存的是我们在执行这个可执行文件的时候，输入的字符串，比如：ls -l -a这样子，但是他argv[]存储的方式是将一个字符串按照空格划分，分成若干个字符串存放在里面。
int main(int argc, char *argv[])
{
    if (argc != 2)
    {
        manual(argv[0]);
        exit(1);
    }
    udpServer server(std::stoi(argv[1]));
    server.init();

    // server.run([](const std::string &str)
    //            {
    //     std::string ret =  "The "+str+" is handled by server";
    //     return ret; });

    // server.run(romote_contral);

    server.run();
    return 0;
}